﻿@using MobiShop.Models
@{
    ViewBag.Title = "Quản lý giỏ hàng";
    string ErrorMessage = ViewBag.ErrorMessage;
    int? ProductError_ID = ViewBag.ProductError_ID;

    ShoppingBasket basket = (ShoppingBasket)Session["ShoppingBasket"];
    List<Product> listProduct = basket.GetProductList();
}
<script src="@Url.Content("~/Scripts/Validate.js")" type="text/javascript"></script>


@if (ErrorMessage != null)
{
    @Html.Raw("<fieldset id='fieldsetError' >")
}
else
{
    @Html.Raw("<fieldset id='fieldsetError' style='display:none;' >");
}
@Html.Raw("<legend>")
    <img src="@Url.Content("~/Content/Images/error_button.png")" alt="" width="30px" />
    Xảy ra lỗi:
@Html.Raw("</legend>")
<span id="spanError" style="color:Red;" > 
    @Html.Raw(ErrorMessage)
</span>
@Html.Raw("</fieldset>")


@if (basket.Count == 0)
{
    <div style="color:Orange" >Giỏ hàng trống !</div>
}
else
{
    int index = 0;
    decimal totalPrice = 0;
    
using (Html.BeginForm("ManageBasket", "Order", FormMethod.Post, new { @id = "frmShoppingBasket" }))
{
<div style="color:Orange" >Giỏ hàng hiện có @basket.Count loại sản phẩm, với tổng số là @basket.TotalQuantity sản phẩm
</div>
<table border="1" width="100%" cellpadding="0" cellspacing="0" >
    <tr style="background-color:Lime;" >
    <th style="width:30px;">STT</th>
    <th style="width:180px;">Tên sản phẩm</th>
    <th style="width:140px;">Hình ảnh</th>
    <th style="width:110px;">Đơn giá</th>
    <th style="width:60px;">Số lượng</th>
    <th style="width:30px;">Xóa?</th>
    </tr>
@foreach (Product product in listProduct)
{
    ++index;
    int quantity = (int)basket.GetQuantity(product.id);
    totalPrice += (decimal)product.price * quantity;

    string priceID = "Price_" + product.id.ToString();
    string quantityID = "Quantity_" + product.id.ToString();
    string nameID = "Name_" + product.id.ToString();
    string RemoveID = "Remove_" + product.id.ToString();
    <tr>
        <td>
            @index
        </td>
         <td>
             <span id="@nameID">@product.name</span> 
         </td>
         <td>
            <img alt="" src="@Url.Content("~/Content/images/" + product.image)" style="width:140px;" title="@product.description" />
         </td>
         <td>
            <span id="@priceID" style="color:Green;" >@String.Format("{0:0,0}", product.price)</span> Vnđ
         </td>
         <td align="center" >
            <input class="required_check_quantity" name="@quantityID" id="@quantityID" 
                type="text" style="width:55px;" value="@quantity" />
         </td>
         <td>
            <input type="checkbox" name="@RemoveID" id="@RemoveID" />
         </td>
    </tr>
}

</table>
    <span>Tổng giá tiền: <span style="color:Blue;" id="spanTotalPrice" >@String.Format("{0:0,0}", totalPrice)</span>Vnđ</span>
    <br /> <br />
    <center>
    <input name="btnUpdateBasket" id="btnUpdateBasket" type="submit" value="Cập nhật giỏ hàng" />
    <input name="btnCheckOut" id="btnCheckOut" type="submit" value="Thanh toán" />
    <input name="btnClearBasket" id="btnClearBasket" type="submit" value="Xóa giỏ hàng" />
    </center>
}

}

<script src="@Url.Content("~/Scripts/Validate.js")" type="text/javascript"></script>

<script type="text/javascript">
    var maxOfEachProductQuantity = parseInt("@ShoppingBasket.maxOfEachProductQuantity");
    var maxOfTotalProductsQuantity = parseInt("@ShoppingBasket.maxOfTotalProductsQuantity");

    function checkQuantity() {
        var totalQuantity = 0;
        var chuoi = "";
        var totalPrice = 0;
        $(".required_check_quantity").each(function (index, element) {
            var $theQuantity = $(this);
            var quantity = $theQuantity.attr("value");

            var m = $theQuantity.attr("id").split("_");
            var $theName = $("#Name_" + m[1]);
            var $thePrice = $("#Price_"+m[1]);
            var $theRemove = $("#Remove_"+m[1]);

            if($theRemove.attr("checked")!="checked")
            {
                var validate = new Validate();
                quantity = validate.parseToInt(quantity);
                if (isNaN(quantity) || quantity == null || quantity < 0 || quantity > maxOfEachProductQuantity) {
                    chuoi += "Số lượng mặt hàng " + $theName.html() +
			    " ko hợp lệ ! Yêu cầu : 0 &lt;= số mặt hàng &lt;= "
			    + maxOfEachProductQuantity + "<br />\n";
                } else {
                    totalQuantity += quantity;
                    totalPrice += quantity * Number($thePrice.html().replace(/,/g,""));
                }
            }
        });
        if (totalQuantity > maxOfTotalProductsQuantity) {
            chuoi += "Tổng số mặt hàng của đơn hàng không được vượt quá " +
		        maxOfTotalProductsQuantity + "<br />\n";
        }

        var validate = new Validate();
        $("#spanTotalPrice").html(validate.DispalyInVND(totalPrice));
        if (chuoi != "") {
            $("#spanError").html(chuoi);
            $("#fieldsetError").show();
            return null;
        } else {
            $("#fieldsetError").hide();
            return totalQuantity;
        }
    }

    $(document).ready(function (e) {
        $("#btnUpdateBasket").click(function (e) {
            return checkQuantity() != null;
        });

        $("#btnCheckOut").click(function (e) {
            var total = checkQuantity();
            if(total!=null && total<=0){
                $("#spanError").html("Không chấp nhận thanh toán cho đơn hàng rỗng !");
                $("#fieldsetError").show();
                return false;
            }
            return total!=null;
        });
    });
</script>